package com.gzc.just.play.last.war.common.message;

import java.util.HashMap;
import java.util.Map;

/**
 * 消息反序列化器工厂
 */
public class MessageDeserializerFactory {
    private static final Map<Integer, MessageDeserializer<?>> deserializers = new HashMap<>();
    
    /**
     * 注册反序列化器
     * @param messageId 消息ID
     * @param deserializer 反序列化器
     */
    public static void register(int messageId, MessageDeserializer<?> deserializer) {
        deserializers.put(messageId, deserializer);
    }
    
    /**
     * 获取反序列化器
     * @param messageId 消息ID
     * @return 反序列化器
     */
    @SuppressWarnings("unchecked")
    public static <T> MessageDeserializer<T> get(int messageId) {
        return (MessageDeserializer<T>) deserializers.get(messageId);
    }
}